// Package requests 处理请求数据和表单验证
package requests

import (
	"github.com/gofiber/fiber/v2"
	"github.com/thedevsaddam/govalidator"
)

type BlacklistRequest struct {
	BlackId uint64 `json:"black_id" valid:"black_id"` //拉黑人ID
	Reason  string `json:"reason" valid:"reason"`     //拉黑原因
}

// https://pkg.go.dev/github.com/thedevsaddam/govalidator@v1.9.10#section-readme
func ValidateBlacklist(c *fiber.Ctx, request *BlacklistRequest) map[string][]string {
	c.BodyParser(request)
	rules := govalidator.MapData{
		"black_id": []string{"required", "numeric"},
		"Reason":   []string{"min_cn:3", "max_cn:255"},
	}

	messages := govalidator.MapData{
		// "name": []string{
		//     "required:名称为必填项",
		//     "min_cn:名称长度需至少 2 个字",
		//     "max_cn:名称长度不能超过 8 个字",
		// },
		// "description": []string{
		//     "min_cn:描述长度需至少 3 个字",
		//     "max_cn:描述长度不能超过 255 个字",
		// },
	}

	return Validate(request, rules, messages)
}
